/*********************************************************************
	\file :           os_sw_layers\bios\gpt\Gpt.h
	\brief:           General purpose timer.
	\author:          Manuel Sandoval
	\version:         1.0
	\date:            Sat, 01, March 2014
*********************************************************************/

#ifndef Gpt_H
#define Gpt_H

/******************************* Includes**********************************/
#include "Gpt_Cfg.h"
#include "typedef_OS.h"
#include "Mcu.h"
 
/******************************* Defines **********************************/


/******************************* Enumerations******************************/


/******************************* Structures *******************************/


/******************************* Global Variables **********************************/


/******************************* Functions ********************************/

 
 
/***************************************************************************
*
*   FUNCTION NAME: Gpt_Init
*
***************************************************************************/
/**
* @brief Initializes the hardware timer module according to configuration set referenced by ConfigPtr.
*
*
* @param[in] *ConfigPtr - See Gpt_ConfigType.
*
* @return void.
*
* None.
*
***************************************************************************/
void Gpt_Init(const Gpt_ConfigType* ConfigPtr);


/***************************************************************************
*
*   FUNCTION NAME: Gpt_StartTimer
*
***************************************************************************/
/**
* @brief Starts the selector timer channel with a defined timeout period.
*
*
* @param[in] Gpt_ChannelType - Numeric identifier of the GPT channel.
* @param[in] Gpt_ValueType - Timeout period (In number of ticks) after a notification shall occur.
*
* @return void.
*
* None.
*
***************************************************************************/
void Gpt_StartTimer(Gpt_ChannelType Channel, Gpt_ValueType Value);


/***************************************************************************
*
*   FUNCTION NAME: Gpt_StopTimer
*
***************************************************************************/
/**
* @brief Stops the selected timer channel.
*
*
* @param[in] Gpt_ChannelType - Numeric identifier of the GPT channel.
*
* @return void.
*
* None.
*
***************************************************************************/
void Gpt_StopTimer(Gpt_ChannelType Channel);


/***************************************************************************
*
*   FUNCTION NAME: Gpt_EnableNotification
*
***************************************************************************/
/**
* @brief Enables the invocation of the configured notification function for a channel.
*
*
* @param[in] Gpt_ChannelType - Numeric identifier of the GPT channel.
*
* @return void.
*
* None.
*
***************************************************************************/
void Gpt_EnableNotification(Gpt_ChannelType Channel);



/***************************************************************************
*
*   FUNCTION NAME: Gpt_DisableNotification
*
***************************************************************************/
/**
* @brief Disables the invocation of the configured notification function for a channel.
*
*
* @param[in] Gpt_ChannelType - Numeric identifier of the GPT channel.
*
* @return void.
*
* None.
*
***************************************************************************/
void Gpt_DisableNotification(Gpt_ChannelType Channel);


/***************************************************************************
*
*   FUNCTION NAME: Gpt_Channel0_Isr
*
***************************************************************************/
/**
* @brief PIT Channel 0 ISR --> Main CPU.
*
*
* @param[in] .
*
* @return void.
*
* None.
*
***************************************************************************/

#pragma CODE_SEG __NEAR_SEG NON_BANKED  
 
void interrupt Gpt_Channel0_Isr(void);

#pragma CODE_SEG DEFAULT



/** @} *//* End of MCU configuration Group */

#endif /* Gpt_H */


/*********************************************************************
	File	: os_sw_layers\bios\gpt\Gpt.h 
*********************************************************************/
